1. Technical Field
The invention is related to maintaining buffered media streams from which media objects are being deleted, and in particular, to a system and method for providing automatic and real-time insertion of media objects into the media stream to maintain a minimum buffer level when objects are deleted from the media stream during playback of the media stream, and wherein similarity information between media objects is used to determine which media objects to insert into the stream to limit abrupt transitions in the media stream.
2. Related Art
There are many existing schemes for identifying audio and/or video objects, such as particular advertisements, station jingles, or songs, embedded in an audio stream. For example, many such schemes use “audio fingerprinting” techniques for identifying objects in the stream by computing and comparing parameters of the media stream, such as, for example, frequency content, energy levels, etc., to a database of known objects. In particular, sampled portions of the media stream are typically analyzed and compared to fingerprints in the database for identification purposes. Endpoints of individual media objects within the media stream are then often determined using either fingerprints, metadata, or other queues embedded in the media stream.
Other conventional schemes operate to identify media objects that repeat in the media stream without necessarily providing an identification of those objects. In other words, these schemes are capable of identifying instances within a media stream where objects that have previously occurred in the media stream are repeating, such as, for example, some unknown song or advertisement which is played two or more times on a radio station. There are a number of conventional methods for providing such identifications. In this case, endpoints of repeating media objects may be determined using fingerprints, metadata, queues embedded in the stream, or by a direct comparison of repeating instances of particular media objects within the media stream to determine where the media stream around those repeating objects diverges.
Regardless of how particular media objects are identified in the media stream, and how the endpoints of those objects are located, the object identification and endpoint information is then frequently used for any of a number of purposes, including, for example, segmentation of the media stream into discrete objects, generation of historical media stream playlists, or simply cataloging the media stream.
Other uses of such object identification and endpoint information include automatic modification of a buffered media stream. For example, one conventional scheme allows users to associate commands or actions to be performed whenever particular media objects occur in the media stream. One example of such commands is to delete or skip a particular media object when it occurs in the media stream. This scheme also monitors an amount of the media stream remaining in the buffer. Then, if the buffered content ever drops below a predetermined minimum time, one or more previously stored media objects may be automatically inserted back into the media stream so that the buffer never runs empty. Objects are chosen for insertion either randomly, or based on user ratings assigned to particular media objects in a user's library, with higher rated objects being weighted more heavily when choosing objects for insertion.
However, many media streams, such as, for example, most radio broadcasts, frequently play songs that are complementary to one another. In other words, such media streams, especially when the stream is carefully compiled by a disk jockey or the like, often play similar songs or musical themes. In fact, such media streams typically smoothly transition from one song to the next, such that the media stream does not abruptly jump or transition from one musical style or tempo to another during playback.
Unfortunately, as noted above, conventional methods for maintaining a buffered media stream from which objects are being deleted typically insert songs or other media objects either randomly, or based on some predetermined user preference or rating, to maintain buffer length. Consequently, such schemes frequently produce a media stream which has apparent discontinuities within the theme or mood of the media stream when presented to the user or listener during playback.
Therefore, what is needed is a system and method for efficiently identifying media objects and their endpoints within a media stream which are to be deleted from the media stream. Further, this system and method should then identify media objects which will fit within the overall theme or mood of the media stream to replace the deleted media objects. Consequently, when such objects are inserted into the media stream to maintain the buffer size, the listener should not notice apparent discontinuities in the overall theme or mood of the buffered media stream during playback of the media stream.